package com.water_work_form.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.water_work_form.entity.RecordProteinNitrogenDetection;
import com.baomidou.mybatisplus.extension.service.IService;
import com.water_work_form.entity.RecordSynchronousComparison;

import java.io.IOException;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * 记录——蛋白性氮检测原始记录 服务类
 * </p>
 *
 * @author xuke
 * @since 2023-09-14
 */
public interface RecordProteinNitrogenDetectionService extends IService<RecordProteinNitrogenDetection> {

    /**
     * 记录——蛋白性氮检测原始记录 项目查询（三个查询项+分页+排序）
     * @param recordMonth 记录年月对应记录日期（record_date）的年月部分 若为空则不进行此项查询，否则选取record_date的前7位即“yyyy-MM”进行校验，返回符合的数据
     * @param reviewUser 审核人（review_user_name） 若为空则不进行此项查询，否则进行模糊查询
     * @param status 项目状态（status） 若为空则不进行此项查询，否则返回对应数据
     * @param current 分页查询 当前页数
     * @param size 分页查询 每页最大数据量
     * @return 返回所有符合上述条件的数据 按照状态（status）、记录日期（record_date）的前后顺序进行升序排序
     */
    IPage<RecordProteinNitrogenDetection> selectRecordProteinNitrogenDetection(String recordMonth,String reviewUser, String status, Integer current, Integer size);

    List<RecordProteinNitrogenDetection> listRecordProteinNitrogenDetection(String recordMonth, String reviewUser);

    /**
     * 记录——蛋白性氮检测原始记录 基础表数据查询
     * @param name form表name
     * @return 返回符合的数据 以表名为键
     */
    Map<String,Object> selectBasicProteinNitrogenDetection(String name);

    void downloadRecordProteinNitrogenDetection(List<RecordProteinNitrogenDetection> recordProteinNitrogenDetectionList, String recordMonth, String reviewUserName) throws IOException;
}
